// Copyright XXX Inc.  All rights reserved.
// 许可证
// 作者：软件1902冯若轩

// 本软件提供自动生成中小学数学卷子的功能，生成的试卷保存在相应账号的文件夹下。
// 该文件是文件读写及命令行I/O相关处理函数的声明

#ifndef PAPER_FILE_AND_IO_H_
#define PAPER_FILE_AND_IO_H_

#include <stdio.h>

#include <cstring>
#include <iostream>
#include <vector>

namespace paper {
namespace io {

// 账号基本信息的结构体，其中，username为用户名，password为密码，type为年级类型
struct UserAccount {
  std::string username;
  std::string password;
  char type;
};

// 从命令行中读取输入的字符串并返回
std::string GetString();

// 格式化时间字符串，返回格式化之后的字符串
std::string FillZero(std::string source);

// 获得当前时间字符串并返回
std::string GetTimeString();

// 从命令行中读取输入的账号和密码，并一起返回
std::pair<std::string, std::string> GetUsernameAndPassword();

// 读取所有账号基本信息并返回
std::vector<UserAccount> GetAllUser();

// 读取某用户已出过的全部题目并返回，name为该用户名
std::vector<std::string> GetQuestionsFromFile(std::string name);

// 将一份试卷按约定的格式写入文件中
void WritePaperIntoFile(std::string name, std::vector<std::string> questions);

}  // namespace io
}  // namespace paper

#endif  // PAPER_FILE_AND_IO_H_